foo(a).
foo(b).
foo(c).
p :- x,y,z.

rgb --> o(r,N), o(g,N), o(b,N).
o(X,z)    --> [].
o(X,s(N)) --> [X], o(X,N).
%%rgb(G299, G302) :- o(r, N, G299, G320), o(g, N, G320, G352), o(b, N, G352, G302).
%%o(X, z, G275, G278) :- G275=G278.
%%o(X, s(N), G312, G315) :- G312=[X|G351], o(X, N, G351, G315).

t0.
t1 :- o(x,z,[],[]).
t2 :- o(x,s(s(z)),[x,x],[]).
t3 :- o(X,Y,[q,q,q,e],[e]).
t4 :- rgb([r,g,b],[]).
t5 :- rgb([r,g,b,x],[x]).
t6 :- rgb([r,r,g,g,b,b],[]).
t7 :- rgb([r,r,r,g,g,g,b,b,b,x],[x]).
t8 :- rgb([foo,bar,baz],[]).

